/**
 *  @file: DebugTask.h
 *  @author: nwz
 *  @brief: 
 *  @date: 2024��7��31��
 * 
 */

#pragma once
#include <all_header.h>
namespace task {
/*
 *
 */
class DebugTask {
public:
	DebugTask(ConsoleTask &consoleTask, DataTask &dataTask, LedTask &ledTask,
			UserKeyTask &userKeyTask, LcdTask &lcdTask, SleepTask &sleepTask,
			LvglTask &lvglTask, UiTask &uiTask) :
			consoleTask { consoleTask }, dataTask { dataTask }, ledTask {
					ledTask }, userKeyTask { userKeyTask }, lcdTask { lcdTask }, sleepTask {
					sleepTask }, lvglTask { lvglTask }, uiTask { uiTask } {

	}

	virtual ~DebugTask();
	static void run(DebugTask *task) {
		task->run_();
	}

private:
	void run_();

	ConsoleTask &consoleTask;
	DataTask &dataTask;
	LedTask &ledTask;
	UserKeyTask &userKeyTask;
	LcdTask &lcdTask;
	SleepTask &sleepTask;
	LvglTask &lvglTask;
	UiTask &uiTask;
};

} /* namespace task */
